Amazon Pollyを使った音声合成サービス「Talestreamer」を使ってみた
はじめに
先日AWS re:Invent 2017に参加した際に、以下のセッションに参加しました。
このセッションでは、Amazon Alexaを使った音声版ゲームブックをサービス提供しているThe Magic Doorが提供している、Amazon Pollyを使った音声合成サービス「Talestreamer」が紹介されていました。
このTalestreamer、一般の人でも使う事ができます。ということで早速やってみました。
やってみた
サービス登録
TalestreamerのWebサイトで[Sign up now]ボタンをクリックします。
メールアドレスとパスワードを入力し、Termsに同意のチェックをして、[Create Account]ボタンをクリックします。
ログインされます。登録したメールアドレスにConfirmメールが来ているのでConfirmします。
タグについて
簡単に言うと、要素は3つです。
streamタグ
streamタグで全体を囲みます。xmlnsは変更不要です。styleで全体に対するオプションの設定が可能です。
<stream xmlns="http://talestreamer.ai/schema/tsml" style="volume-profile: prenormalized"> </stream>
audioタグ
MP3オーディオファイルを埋め込みます。
<audio src="http://s3.amazonaws.com/magicdoor.huntwork.net/library/TS_INTRO_1_PART_LOGO_START.mp3"></audio>
styleを付与し、startとendで開始する秒と終了する秒を指定することで、MP3ファイルをトリミングすることが出来ます。
<audio src="http://s3.amazonaws.com/magicdoor.huntwork.net/library/MagicDoor_GhostCaptain.mp3" style="start: 146; end: 151.3; volume: 5db"></audio>
FAQページで参照されている、フリーの音源がダウンロード出来るページは以下です。
- Sound Dogs
- fmod.io
- Partners in Rhyme Loops. (Great for backgrounds.)
- Partners in Rhyme.
- FreeSounds
- Sound Bible
- Public Domain Info Project
spanタグ
spanで囲まれている範囲に対しstyleでオプションを設定します。
<span style="background-sound: https://s3.amazonaws.com/magicdoor.huntwork.net/library/ts_intro/bg.mp3; background-volume: loud"> <span style="voice: Raveena">We’re all here to help. Let’s get started!</span> <span style="break: 0.1s"></span> </span>
styleについて
Styleで設定出来るものは以下の通りです。
rate
スピーチレートを設定します。設定値はx-slow、slow、medium、fast、x-fastの5段階で、デフォルトはmediumです。
voice
Talestreamerでは元々Amazon Pollyが持っているVoiceに対してrateやpitchでカスタマイズしたものを、名前を付けた声として提供しています。設定可能な名前はAstrid、Brian、Carla、Carmen、Celine、Chantal、Conchita、Cristiano、Dora、Emma、Enrique、Ewa、Filiz、Geraint、Giorgio、Gwyneth、Hans、Ines、Ivy、Jacek、Jan、Joanna、Joey、Justin、Karl、Kendra、Kimberly、Liv、Lotte、Mads、Maja、Marlene、Mathieu、Matthew、Maxim、Miguel、Mizuki、Naja、Nicole、Penelope、Raveena、Ricardo、Ruben、Russell、Tatyana、Salli、Vicki、Vitoriaと非常に多いです。
pitch
ピッチを設定します。設定値はx-slow、slow、medium、fast、x-fastで、デフォルトはmediumです。
volume
音量を設定します。設定値はloud、x-loud、soft、x-soft、medium、quiet、x-quietで、デフォルトはmediumです。
volume-profile
音量を正規化するアルゴリズムを設定することが出来ます。noneかprenormalizedを選択します。
background-sound
バックグラウンドで流れる音となるMP3ファイルを指定します。background-startとbackground-endで開始する秒と終了する秒を指定することで、MP3ファイルをトリミングすることが出来ます。
background-volume
バックグラウンドで流れる音の音量を設定します。設定値はloud、x-loud、soft、x-soft、medium、quiet、x-quietで、デフォルトはmediumです。
background-volume-profile
バックグラウンドで流れる音の音量を正規化するアルゴリズムを設定することが出来ます。noneかprenormalizedを選択します。
break
spanで囲まれたブロックを再生した後に一時的する秒数を指定します。
pre-break
spanで囲まれたブロックを再生する前に一時的する秒数を指定します。
実行
最初から用意されているサンプルは以下。
<stream xmlns="http://talestreamer.ai/schema/tsml" style="volume-profile: prenormalized"> <audio src="http://s3.amazonaws.com/magicdoor.huntwork.net/library/TS_INTRO_1_PART_LOGO_START.mp3"></audio> <span style="background-sound: https://s3.amazonaws.com/magicdoor.huntwork.net/library/ts_intro/bg.mp3; background-volume: loud"> <audio src="http://s3.amazonaws.com/magicdoor.huntwork.net/library/MagicDoor_GhostCaptain.mp3" style="start: 146; end: 151.3; volume: 5db"></audio> <span style="break: 0.5s"></span> <span>You can add audible personality, branding, and emotion to your voice bot, using Talestreamer.</span> <span style="break: 0.5s"></span> <span style="voice: Raveena">We’re all here to help. Let’s get started!</span> <span style="break: 0.1s"></span> </span> <audio src="http://s3.amazonaws.com/magicdoor.huntwork.net/library/TS_INTRO_1_PART_LOGO_END.mp3" style="volume: -10db"></audio> </stream>
これを再生するとこうなります。audioやbackground-soundが使われていることが分かります。
じゃあこんな風にしてみましょうか。
<stream xmlns="http://talestreamer.ai/schema/tsml" style="volume-profile: prenormalized; voice: Mizuki"> <audio src="http://s3.amazonaws.com/magicdoor.huntwork.net/library/TS_INTRO_1_PART_LOGO_START.mp3"></audio> <span style="background-sound: https://s3.amazonaws.com/magicdoor.huntwork.net/library/ts_intro/bg.mp3; background-volume: loud"> <span>ようこそ、テイルストリーマーへ。</span> <span style="break: 0.5s"></span> </span> <audio src="http://s3.amazonaws.com/magicdoor.huntwork.net/library/TS_INTRO_1_PART_LOGO_END.mp3" style="volume: -10db"></audio> このように、ミズキが喋ることも出来るんですよ。 <span style="break: 0.1s"></span> </stream>
こうやってMizukiが使えるので、日本語にも対応しています。
さいごに
音声の細かなコントロールだけであればPollyでも出来ますが、バックグラウンドサウンドやある特定のサウンドを含めて音声ファイルを作りたい場合には重宝するのではないでしょうか。